// File: jmcomic-core/src/main/java/dev/jukomu/common/util/system/AppConfigManager.java
package dev.jukomu.common.util.system;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 用于管理应用程序级别的配置，例如ConfigTemplate的默认提供者。
 */
public class AppConfigManager {

    // 存储应用程序级别的默认配置提供者
    private static Map<String, Object> defaultAppProvider = new ConcurrentHashMap<>();

    /**
     * 设置应用程序级别的默认配置提供者。
     * 这会影响所有新创建的ConfigTemplate实例的默认值来源。
     *
     * @param provider Map形式的默认配置
     */
    public static void setDefaultAppProvider(Map<String, Object> provider) {
        if (provider != null) {
            defaultAppProvider = new ConcurrentHashMap<>(provider);
        } else {
            defaultAppProvider = new ConcurrentHashMap<>();
        }
    }

    /**
     * 获取应用程序级别的默认配置提供者。
     *
     * @return Map形式的默认配置
     */
    public static Map<String, Object> getDefaultAppProvider() {
        return defaultAppProvider;
    }

    // 私有构造函数，防止实例化
    private AppConfigManager() {
    }
}